/**
 * 这是一个工作草案阶段的规范，且浏览器兼容性很差，基本以了解为主。
 */

/**
* NetWork Information API 允许 web 应用访问网络信息。并声明了两个特殊的需求：
    1.要求提供一个接口用于测定当前用于网络通信的链接类型
        它可以在客户端页面上以一种特殊方法进行查询，并且需要在其他环境也可用，比如服务工作进程
    2.提供一种方法来脚本化的提示连接类型变化
*/
// 这个接口挂载在 navigator.connection 对象下
console.log(navigator.connection);
/**
 * navigator.connection 实现了 NetWorkInformation 接口 {
 *    type: {menu ConnectionType} 枚举，连接类型
 *    effectiveType: {menu EffectiveConnectionType} 枚举，实际类型
 *    downlinkMax: {Megabit} 最大下行带宽
 *    downlink: {Megabit} 实际下行带宽
 *    rtt: {Millsecond} 循环时长
 *    saveData: {boolean} 是否请求返回减少数据使用的模式
 * }
 */

console.log(navigator.connection.type); // 当前连接类型

console.log(navigator.connection.effectiveType); // 当前连接有效类型
/**
 * effectiveType 枚举类型 {
 *    slow-2g: 2000(min RTT) 50(max downlink Kbps) 值适合纯文本传输
 *    2g: 1400 70 可以传输小尺寸图片
 *    3g: 270 700 可以传输高清图片、音视频等
 *    4g: 0 无线 高清视频、实时视频等
 * }
 */

console.log(navigator.connection.downlink); // 最大下行链路带宽

// 监听连接类型变换
navigator.connection.onchange = function () {
  console.log('change');
}

/**
 * 现在各个浏览器的实现与规范并不相符，要注意
 */